import os
import time
from flask import Flask, jsonify, url_for, session, redirect, flash, make_response, request

# 静态变量个人信息
CURRENT_USER = {
    'username': 'suoweiwei',
    'password': '123456',
    'email': '344@qq.com',
    'no': 123
}

# 1.声明
app = Flask(__name__)
# 2.创建秘钥
app.secret_key = os.urandom(24)


# 3. 首页路由
@app.route('/')
def index():
    # 3.1 从session里获取用户信息
    username = session.get('username')
    # 3.2 判断当前用户是否登录过
    if username == CURRENT_USER['username']:
        # 如果登录 展示个人信息 ----优化：用模版显示页面
        return jsonify({CURRENT_USER})
    else:
        # 如果没登录进行提示，并跳转到登录页
        flash('请进行登录~', 'warning')
        return redirect(url_for('login'))


# 4 登录页 GET用户可以访问，POST 用于提交信息
@app.route('/login', methods=['GET', 'POST'])
def login():
    # 4.1 第一步判断当前页面的来源目的
    if request.method == 'GET':
        # 4.2 如果是访问登录页 则展示相应模版----待优化：用模版展示
        return """
         <form method="post" action="/login">
             <p>username: <input type="text" name="username"></p>
             <p>password: <input type="password" name="password"></p>
             <p><button type="submit">提交</button> <button type="reset">重置</button></p>
         </form>
        """
    else:  # 注意： 这里else 可以不写，上面有return
        # 4.3 request 获取用户提交的信息
        username = request.form.get('username')
        password = request.form.get('password')
        # 4.4 判断 提交的内容是否合规
        if username == CURRENT_USER['username'] and password == CURRENT_USER['password']:
            flash('登录成功', 'success')
            return redirect(url_for('index'))
        #4.5 如果不合规 错误提示
        flash('账号密码不正确，请重新输入', 'error')
        time.sleep(3)
        return make_response(jsonify(message='账号密码错误'), 202)


if __name__ == '__main__':
    app.run(debug=True)
